﻿using BCCommon;
using BCDto.Sim.Admin.Admin;
using BCDto.TMS.TransportSpecificServiceConfig;
using BCDto.TMS.TransportSpecificServiceConfigOverWrite;
using BCEntity.TMS.TransportSpecificServiceConfig;
using BCEntity.TMS.TransportSpecificServiceConfigOverWrite;
using System.Collections.Generic;

namespace BCService.TMS.TransportSpecificServiceConfigOverWrite
{
    public interface ITransportSpecificServiceConfigOverWriteService
    {
        TransportSpecificServiceConfigOverWriteDto Add(TransportSpecificServiceConfigOverWriteRequestDto transportSpecificServiceConfigOverWriteRequestDto, AdminDto admin);
        PageableList<TransportSpecificServiceConfigViewDto> GetList(AdminDto admin, int? vehicleTypeId, string specificServiceType, string serviceTitle, string provinceCode, string cityCode, string countyCode, int pageIndex, int pageSize);
        PageableList<TransportSpecificServiceConfigDto> GetListBase(int?vehicleTypeId,string specificServiceType, string serviceTitle,int pageIndex, int pageSize);
        List<TransportSpecificServiceConfigViewDto> GetOnlyList(long agentRecordId, int? vehicleTypeId, string specificServiceType, string serviceTitle, string countyCode);
        List<TransportSpecificServiceConfigViewDto> GetOnlyListBase(int? vehicleTypeId, string specificServiceType, string serviceTitle);
        TransportSpecificServiceConfigOverWriteDto Update(TransportSpecificServiceConfigOverWritePutDto transportSpecificServiceConfigOverWritePutDto, AdminDto admin);

        TransportSpecificServiceConfigOverWriteDto UpdateEnable(AdminDto admin, long transportSpecificServiceConfigOverWriteId, bool enabled);
        /// <summary>
        /// 获取运输特殊服务配置重写记录
        /// </summary>
        /// <param name="transportSpecificServiceConfigOverWriteId">运输特殊服务配置重写Id</param>
        /// <returns></returns>
        TransportSpecificServiceConfigDto GetById(int transportSpecificServiceConfigOverWriteId);
    }
}